"""
元素等待有几种？
1.隐士等待
特点： 1.必须整个页面加载完之后才去找元素
       2.只需设置一次，对页面所有元素都有效
       3.
2.显示等待
        WebDriverWait
        1.不需要在页面加载完再去定位元素
        2.针对单个元素
        3.如果找不到，就报超时
3.强制等待


面试题：隐士等待和显示等待区别
        1.作用域
        2.异常 找不到元素   时间超时
        3.效率 显示等待
        2.如果页面元素定位不到，有没有遇到过，问么解决的
        页面加载完成，但是元素延时加载，导致定位不成功，可以使用元素等待来处理
        3.元素等待有几种？

        隐士等待和显示等待强制等待区别
        1.作用域
        2.异常
        3.效率
        4.让代码做休眠，不需要元素

"""
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
import time

# 初始化浏览器驱动
driver = webdriver.Chrome()
driver.maximize_window()

# 打开目标网页
driver.get("http://localhost:8081/regA.html")

# 使用lambda表达式的显示等待：等待元素存在并获取该元素
ele1 = WebDriverWait(driver, 10).until(
    lambda x: x.find_element(By.XPATH, "/html/body/div[1]/div[2]/div[1]/input[1]")
)

# 操作元素
ele1.send_keys("admin")
time.sleep(2)

driver.quit()
